import {requestConfig} from '@/common/config/requestConfig.js'//全局配置参数，包括加密是否开启的开关
import CryptoJS from 'crypto-js'
import Base64 from 'crypto-js/enc-base64'
export default {
	
	// 手机号码验证
	phone(phone) {
		if (/^[1][2,3,4,5,6,7,8,9][0-9]{9}$/.test(phone)) {
			return true
		}
		return false
	},
	idcard(id) {
		// 1 "验证通过!", 0 //校验不通过                                    
		var format =
			/^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/;
		//号码规则校验
		if (!format.test(id)) {
			return {
				'status': false,
				'msg': '身份证号码不合规'
			};
		}
		//区位码校验
		//出生年月日校验   前正则限制起始年份为1900;
		var year = id.substr(6, 4), //身份证年
			month = id.substr(10, 2), //身份证月
			date = id.substr(12, 2), //身份证日
			time = Date.parse(month + '-' + date + '-' + year), //身份证日期时间戳date
			now_time = Date.parse(new Date()), //当前时间戳
			dates = (new Date(year, month, 0)).getDate(); //身份证当月天数
		if (time > now_time || date > dates) {
			return {
				'status': false,
				'msg': '出生日期不合规'
			}
		}
		//校验码判断
		var c = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //系数
		var b = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); //校验码对照表
		var id_array = id.split("");
		var sum = 0;
		for (var k = 0; k < 17; k++) {
			sum += parseInt(id_array[k]) * parseInt(c[k]);
		}
		if (id_array[17].toUpperCase() != b[sum % 11].toUpperCase()) {
			return {
				'status': false,
				'msg': '身份证校验码不合规'
			}
		}
		return {
			'status': true,
			'msg': '校验通过'
		}
	},
	//把utf16的emoji表情字符进行转码成八进制的字符
	//上传emoji表情
	emojiToEntities(str) {
	    var patt = /[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则  
	    return str.replace(patt, function (char) {
	      var H, L, code;
	      if (char.length === 2) {
	        H = char.charCodeAt(0); // 取出高位  
	        L = char.charCodeAt(1); // 取出低位  
	        code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法  
	        return "&#" + code + ";";
	      } else {
	        return char;
	      }
	    });
	},
	//将编码后的八进制的emoji表情重新解码成十六进制的表情字符
	//展示emoji表情
	entitiesToEmoji(str) {
	  return str.replace(/&#(\d+);/g, function (match, dec) {
	    let H = Math.floor((dec - 0x10000) / 0x400) + 0xD800;
	    let L = Math.floor(dec - 0x10000) % 0x400 + 0xDC00;
	    return String.fromCharCode(H, L);
	   });
	}
}
